import matplotlib.pyplot as plt
import numpy as np

# 设置字体和负号显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False  # 解决负号乱码问题

# 准备月份信息
months = ['5.24', '5.25', '5.26', '5.27', '5.28', '5.29', '5.30', '5.31', '6.1', '6.2', '6.3', '6.4', '6.5', '6.6', '6.7']

# 准备平均最高温度和最低温度数据
max_temps = [29, 30, 31, 32, 33, 34, 31, 30, 29, 30, 32, 33, 31, 30, 29]
min_temps = [22, 23, 24, 25, 24, 25, 24, 23, 22, 23, 24, 25, 24, 23, 22]

# 准备降水量数据
precipitation = [3.2, 5.1, 0.0, 0.5, 8.7, 15.4, 12.3, 2.1, 0.0, 1.2, 6.8, 20.1, 7.5, 3.0, 0.2]

# 准备游戏名称和市场份额数据
labels = ['王者荣耀', '原神', '和平精英', '金铲铲之战', '第五人格', '开心消消乐', '贪吃蛇大作战', '其他']
shares = [35, 20, 12, 10, 8, 6, 5, 4]

# 创建图形并设置大小和分辨率
fig, ax1 = plt.subplots(figsize=(12, 8), dpi=150)

# 添加网格
ax1.grid(linestyle="--", alpha=0.5)

# 绘制平均最高温度折线图
ax1.plot(months, max_temps, color="r", label="平均最高温度", marker='o')
# 绘制平均最低温度折线图
ax1.plot(months, min_temps, color="b", label="平均最低温度", marker='o')

# 添加坐标轴标签和标题
ax1.set_xlabel("日期")  # 添加x轴标签
ax1.set_ylabel("温度 (单位: ℃)", color="b")  # 添加y轴标签
ax1.tick_params(axis='y', labelcolor='b')  # 设置y轴标签颜色
ax1.set_title("清远市未来15天天气情况")  # 添加图表标题

# 显示图例
ax1.legend(loc='upper left')

# 创建第二个y轴
ax2 = ax1.twinx()
# 绘制降水量柱状图
ax2.bar(months, precipitation, color='green', alpha=0.6, width=0.8)
ax2.set_ylabel("降水量 (单位: mm)", color="g")  # 添加y轴标签
ax2.tick_params(axis='y', labelcolor='g')  # 设置y轴标签颜色

# 在图的右上角添加饼状图
ax_pie = fig.add_axes([0.65, 0.65, 0.2, 0.2])  # [left, bottom, width, height]
ax_pie.pie(shares, labels=labels, autopct='%1.1f%%', startangle=140)
ax_pie.set_title("2025年国内热门游戏排行")

# 保存图形
plt.savefig('all_in_one_chart.png')

# 显示图形
plt.show()